#ifndef THREAD_SEARCH_CONF_PANEL_H
#define THREAD_SEARCH_CONF_PANEL_H

#include <wx/string.h>
#include "configurationpanel.h"

class wxWindow;
class wxRadioBox;
class wxCheckBox;
class wxStaticBox;
class wxCommandEvent;
class ThreadSearch;
class SearchInPanel;
class DirectoryParamsPanel;

class ThreadSearchConfPanel: public cbConfigurationPanel {
  public:
    ThreadSearchConfPanel( ThreadSearch& threadSearchPlugin, wxWindow* parent = NULL, wxWindowID id = -1 );
    wxString GetTitle() const {return _T( "多线程搜索" );}
    wxString GetBitmapBaseName() const {return _T( "ThreadSearch" );}
    void OnApply();
    void OnCancel() {}
  private:
    void set_properties();
    void do_layout();
    ThreadSearch& m_ThreadSearchPlugin;
  protected:
    wxStaticBox* SizerThreadSearchLayout_staticbox;
    wxStaticBox* SizerListControlOptions_staticbox;
    wxStaticBox* SizerThreadSearchLayoutGlobal_staticbox;
    wxStaticBox* SizerThreadSearchOptions_staticbox;
    wxStaticBox* SizerSearchIn_staticbox;
    SearchInPanel* m_pPnlSearchIn;
    DirectoryParamsPanel* m_pPnlDirParams;
    wxCheckBox* m_pChkWholeWord;
    wxCheckBox* m_pChkStartWord;
    wxCheckBox* m_pChkMatchCase;
    wxCheckBox* m_pChkRegExp;
    wxCheckBox* m_pChkThreadSearchEnable;
    wxCheckBox* m_pChkUseDefaultOptionsForThreadSearch;
    wxCheckBox* m_pChkShowMissingFilesError;
    wxCheckBox* m_pChkShowCantOpenFileError;
    wxCheckBox* m_pChkDeletePreviousResults;
    wxCheckBox* m_pChkShowThreadSearchToolBar;
    wxCheckBox* m_pChkShowThreadSearchWidgets;
    wxCheckBox* m_pChkShowCodePreview;
    wxCheckBox* m_pChkDisplayLogHeaders;
    wxCheckBox* m_pChkDrawLogLines;
    wxCheckBox* m_pChkAutosizeLogColumns;
    wxRadioBox* m_pRadPanelManagement;
    wxRadioBox* m_pRadLoggerType;
    wxRadioBox* m_pRadSplitterWndMode;
    wxRadioBox* m_pRadSortBy;
    DECLARE_EVENT_TABLE();
  public:
    void OnThreadSearchEnable( wxCommandEvent &event );
    void OnChkShowThreadSearchToolBarClick( wxCommandEvent &event );
    void OnChkCodePreview( wxCommandEvent &event );
    void OnChkShowThreadSearchWidgetsClick( wxCommandEvent &event );
    void OnChkShowMissingFilesErrorClick( wxCommandEvent &event );
    void OnChkShowCantOpenFileErrorClick( wxCommandEvent &event );
};
#endif
